/* 
 * File:   Application.h
 * Author: Imre Tabur
 *
 */
#ifndef CLOUDY_STORAGE_APPLICATION_H
#define	CLOUDY_STORAGE_APPLICATION_H

#include <string>
#include <vector>
#include <map>
#include "Version.h"
#include "Storage.h"
#include "AgentProfile.h"

#ifdef _WIN32
#ifdef EXAMPLE_EXPORTS
#define EXAMPLE_API __declspec(dllexport)
#else
#define EXAMPLE_API __declspec(dllimport)
#endif
#else
#define EXAMPLE_API
#endif

namespace CloudyStorage {

    class EXAMPLE_API Application {
    public:
        Storage storage;
        std::string commandName;
        std::vector<std::string> parameters;
        AgentProfile profile;

        Application();
        Application(const Application& orig);
        virtual ~Application();

        int Args(int argc, const char *argv[], const char *env[]);
        virtual int Main();

    private:

    };
}
#endif	/* CLOUDY_STORAGE_APPLICATION_H */
